Pressidian
花园入口
笔记
项目
关于
实验室
GitHub
花园入口
笔记
项目
关于
实验室
GitHub

KNOWLEDGE PATHS

笔记库
当前位置
笔记库/前端/面试/面经

16 斑马智行-全部

4 分钟阅读 · Note

目录树 578 篇

          • 0 面试技巧&HR面⬇️
          • 1磐松资产-前端实习-一面
          • 2字节跳动-豆包前端实习-全部
          • 3百度-前端实习面试-一面
          • 5光庭-前端实习-一面
          • 6懂车帝-前端实习-一面
          • 7字节-抖音团购-全部
          • 8腾讯-前端-全部
          • 9字节&美团-笔试
          • 10 美团-一面
          • 11 B站-一面
          • 12 腾讯-一面-企业微信团队
          • 13 腾讯-一面-腾讯金融科技
          • 14 腾讯-二面-腾讯金融科技
          • 15 美团-一面-核心本地商业
          • 16 斑马智行-全部
          • 17 字节-一面-飞书
          • 18 美团-二面-核心本地商业
          • 19 心影随形-全部
          • 20 thunderbit-全部
          • 21 converge ai-全部
          • 22 字节-国际化广告创意与品牌
        • 可投递企业
      • 前端技术栈
    • 笔记目录
    • CLAUDE.md
    • Vue 组件与 Render 函数

关联笔记 6

↗0 面试技巧&HR面⬇️同一路径↗10 美团-一面同一路径↗11 B站-一面同一路径↗12 腾讯-一面-企业微信团队同一路径↗13 腾讯-一面-腾讯金融科技同一路径↗14 腾讯-二面-腾讯金融科技同一路径
  • 16 斑马智行-全部

16 斑马智行-全部

> Last Format Time:6/12/2026 21:03:57

6/12/26 【理由】原文将「一面」「二面」「React Server Components」并列写成 H1,违反 H1 唯一原则。 原内容:# 一面 / # 二面 / # React Server Components

一面

提问

有关js、css、react、vue的一些问题,记不清了,很基础,全是八股文:

  • css样式优先级
  • vue中computed与watch的区别
  • 移动端适配

反问

  • agent落地情况:似乎没有
  • 目前编程的情况:手动编程(古法编程)

看样子主要的技术栈是Vue


二面

一面完事,马上就二面了,如果有offer那我就接着

问的就是具体的业务了:

  • 字节的项目经历
  • 移动端适配
  • Agent开发的具体实现
  • 有关长线运行的Agent会改乱仓库的情况
  • 有关服务端推给前端一个结构,可能是xml也可能是其他的结构,然后前端使用基础的组件来拼装页面的新技术 应该是RSC

反问

我靠了,他居然没让我反问,何意味,看来有戏,但是最好是实习6个月,这他妈的。。。 反问:

  • 我们是日常实习,有可能转正吗?
  • 我们的具体业务是什么呢?
  • 日常实习生能够做什么呢,能否学习到真正有价值的东西呢?

React Server Components

React Server Components(简称 RSC,服务端组件)是 React 架构的一次重大革新。简单来说,它允许 React 组件完全在服务端(Server)运行和渲染,而无需将组件的 JavaScript 代码发送到浏览器。

在传统的 React 开发中,所有的组件逻辑、依赖库都需要打包成 JS 文件下发给浏览器,由浏览器解析执行。而 RSC 改变了这一现状,它把"重"的计算、数据的获取都留在了服务端,只把渲染好的结果交给客户端。

以下是 RSC 的核心特点、优势以及它与传统渲染方式的区别:

RSC 的核心优势

  1. 零客户端体积(Zero Bundle Size) 如果你在 RSC 中使用了体积庞大的第三方库(比如用来解析 Markdown 的 marked 或处理日期的库),这些库的 JS 代码永远不会被发送到客户端。它们只在服务端运行,极大减轻了浏览器的下载和解析负担。
  2. 直接访问后端资源 RSC 允许你直接在组件内部编写数据库查询、读取服务器文件系统或调用内部微服务。你不再需要为了获取数据而专门写一套 API 接口,大大简化了开发流程。
  3. 更优的初始加载体验 RSC 配合流式渲染(Streaming),可以让浏览器边接收数据边渲染页面。相比传统方式需要等待所有 JS 下载完才能交互,RSC 能让用户更快看到页面内容,减少白屏时间。

服务端组件 (RSC) vs 客户端组件 (Client Components)

在 RSC 架构下,React 组件被明确划分为了两种类型。在现代框架(如 Next.js)中,默认所有组件都是服务端组件。

特性服务端组件 (RSC)客户端组件 (Client Components)
执行位置仅在服务端浏览器 (客户端)
代码打包不打包进客户端 JS打包并发送到客户端
数据获取可直接查询数据库/文件系统需通过 API 请求 (fetch/axios)
交互能力不支持 (onClick 等无效)支持完整交互与事件监听
React Hooks不支持 (useState, useEffect)支持所有 Hooks
声明方式默认 (无需特殊标记)需在文件顶部添加 'use client'

代码实战演示

服务端组件 (默认)

可以直接在组件里进行异步数据库查询,且引入的大型依赖不会增加前端体积:

import { db } from '@/lib/db';
import marked from 'marked'; // 这个库只留在服务端,不会下发给浏览器

export default async function ArticlePage({ params }) {
  // 直接在组件内异步获取数据
  const article = await db.article.findUnique({ where: { id: params.id } });
  const htmlContent = marked(article.content);

  return (
    <article>
      <h1>{article.title}</h1>
      <div dangerouslySetInnerHTML={{ __html: htmlContent }} />
    </article>
  );
}
客户端组件 (需声明 'use client')

当页面需要点击、输入框、倒计时等交互时,就需要使用客户端组件:

'use client'; // 必须显式声明

import { useState } from 'react';

export function LikeButton() {
  const [likes, setLikes] = useState(0);
  return (
    <button onClick={() => setLikes(likes + 1)}>
      ❤️ {likes}
    </button>
  );
}

总结与补充

RSC 并不是要完全取代传统的 SSR(服务端渲染)或 CSR(客户端渲染),而是将两者的优势结合了起来。它把**"展示和数据获取"交给服务端,把"交互和状态管理"**交给客户端。

目前,Next.js (App Router) 是对 RSC 支持最成熟的主流框架,它默认采用 RSC 架构来构建应用。掌握 RSC 的核心在于学会**"何时使用服务端组件,何时切换到客户端组件"**,从而在性能和交互体验之间找到最佳平衡。


我他妈的,两个面试都过了,最后的hr给我挂了,因为我去的太晚了,666